home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / QuickTime Mac / AIncludes / QD3DLight.a < prev    next >
Encoding:
Text File  |  1998-04-09  |  12.6 KB  |  440 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QD3DLight.a
  3. ;
  4. ;    Contains:    Generic light routines                                             
  5. ;
  6. ;    Version:    Technology:    Quickdraw 3D 1.5.4
  7. ;                Release:    QuickTime 3.0
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__QD3DLIGHT__') = 'UNDEFINED' THEN
  19. __QD3DLIGHT__ SET 1
  20.  
  21.     IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
  22.     include 'QD3D.a'
  23.     ENDIF
  24.  
  25. ; ******************************************************************************
  26. ; **                                                                             **
  27. ; **                            Enum Definitions                                 **
  28. ; **                                                                             **
  29. ; ****************************************************************************
  30.  
  31.  
  32. ; typedef long                            TQ3AttenuationType
  33. kQ3AttenuationTypeNone            EQU        0
  34. kQ3AttenuationTypeInverseDistance EQU    1
  35. kQ3AttenuationTypeInverseDistanceSquared EQU 2
  36.  
  37.  
  38. ; typedef long                            TQ3FallOffType
  39. kQ3FallOffTypeNone                EQU        0
  40. kQ3FallOffTypeLinear            EQU        1
  41. kQ3FallOffTypeExponential        EQU        2
  42. kQ3FallOffTypeCosine            EQU        3
  43.  
  44. ; ******************************************************************************
  45. ; **                                                                             **
  46. ; **                            Data Structure Definitions                         **
  47. ; **                                                                             **
  48. ; ****************************************************************************
  49.  
  50. TQ3LightData            RECORD 0
  51. isOn                     ds.l    1                ; offset: $0 (0)
  52. brightness                 ds        Float32            ; offset: $4 (4)
  53. color                     ds        TQ3ColorRGB        ; offset: $8 (8)
  54. sizeof                     EQU *                    ; size:   $14 (20)
  55.                         ENDR
  56. TQ3DirectionalLightData    RECORD 0
  57. lightData                 ds        TQ3LightData    ; offset: $0 (0)
  58. castsShadows             ds.l    1                ; offset: $14 (20)
  59. direction                 ds        TQ3Vector3D        ; offset: $18 (24)
  60. sizeof                     EQU *                    ; size:   $24 (36)
  61.                         ENDR
  62. TQ3PointLightData        RECORD 0
  63. lightData                 ds        TQ3LightData    ; offset: $0 (0)
  64. castsShadows             ds.l    1                ; offset: $14 (20)
  65. attenuation                 ds.l    1                ; offset: $18 (24)
  66. location                 ds        TQ3Point3D        ; offset: $1C (28)
  67. sizeof                     EQU *                    ; size:   $28 (40)
  68.                         ENDR
  69. TQ3SpotLightData        RECORD 0
  70. lightData                 ds        TQ3LightData    ; offset: $0 (0)
  71. castsShadows             ds.l    1                ; offset: $14 (20)
  72. attenuation                 ds.l    1                ; offset: $18 (24)
  73. location                 ds        TQ3Point3D        ; offset: $1C (28)
  74. direction                 ds        TQ3Vector3D        ; offset: $28 (40)
  75. hotAngle                 ds        Float32            ; offset: $34 (52)
  76. outerAngle                 ds        Float32            ; offset: $38 (56)
  77. fallOff                     ds.l    1                ; offset: $3C (60)
  78. sizeof                     EQU *                    ; size:   $40 (64)
  79.                         ENDR
  80. ; ******************************************************************************
  81. ; **                                                                             **
  82. ; **                    Light routines (apply to all TQ3LightObjects)             **
  83. ; **                                                                             **
  84. ; ****************************************************************************
  85.  
  86. ;
  87. ; extern TQ3ObjectType Q3Light_GetType(TQ3LightObject light)
  88. ;
  89.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  90.         IMPORT_CFM_FUNCTION Q3Light_GetType
  91.     ENDIF
  92.  
  93. ;
  94. ; extern TQ3Status Q3Light_GetState(TQ3LightObject light, TQ3Boolean *isOn)
  95. ;
  96.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  97.         IMPORT_CFM_FUNCTION Q3Light_GetState
  98.     ENDIF
  99.  
  100. ;
  101. ; extern TQ3Status Q3Light_GetBrightness(TQ3LightObject light, float *brightness)
  102. ;
  103.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  104.         IMPORT_CFM_FUNCTION Q3Light_GetBrightness
  105.     ENDIF
  106.  
  107. ;
  108. ; extern TQ3Status Q3Light_GetColor(TQ3LightObject light, TQ3ColorRGB *color)
  109. ;
  110.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  111.         IMPORT_CFM_FUNCTION Q3Light_GetColor
  112.     ENDIF
  113.  
  114. ;
  115. ; extern TQ3Status Q3Light_SetState(TQ3LightObject light, TQ3Boolean isOn)
  116. ;
  117.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  118.         IMPORT_CFM_FUNCTION Q3Light_SetState
  119.     ENDIF
  120.  
  121. ;
  122. ; extern TQ3Status Q3Light_SetBrightness(TQ3LightObject light, float brightness)
  123. ;
  124.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  125.         IMPORT_CFM_FUNCTION Q3Light_SetBrightness
  126.     ENDIF
  127.  
  128. ;
  129. ; extern TQ3Status Q3Light_SetColor(TQ3LightObject light, const TQ3ColorRGB *color)
  130. ;
  131.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  132.         IMPORT_CFM_FUNCTION Q3Light_SetColor
  133.     ENDIF
  134.  
  135. ;
  136. ; extern TQ3Status Q3Light_GetData(TQ3LightObject light, TQ3LightData *lightData)
  137. ;
  138.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  139.         IMPORT_CFM_FUNCTION Q3Light_GetData
  140.     ENDIF
  141.  
  142. ;
  143. ; extern TQ3Status Q3Light_SetData(TQ3LightObject light, const TQ3LightData *lightData)
  144. ;
  145.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  146.         IMPORT_CFM_FUNCTION Q3Light_SetData
  147.     ENDIF
  148.  
  149.  
  150. ; ******************************************************************************
  151. ; **                                                                             **
  152. ; **                            Specific Light Routines                               **
  153. ; **                                                                             **
  154. ; ****************************************************************************
  155.  
  156. ; ******************************************************************************
  157. ; **                                                                             **
  158. ; **                            Ambient Light                                       **
  159. ; **                                                                             **
  160. ; ****************************************************************************
  161.  
  162. ;
  163. ; extern TQ3LightObject Q3AmbientLight_New(const TQ3LightData *lightData)
  164. ;
  165.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  166.         IMPORT_CFM_FUNCTION Q3AmbientLight_New
  167.     ENDIF
  168.  
  169. ;
  170. ; extern TQ3Status Q3AmbientLight_GetData(TQ3LightObject light, TQ3LightData *lightData)
  171. ;
  172.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  173.         IMPORT_CFM_FUNCTION Q3AmbientLight_GetData
  174.     ENDIF
  175.  
  176. ;
  177. ; extern TQ3Status Q3AmbientLight_SetData(TQ3LightObject light, const TQ3LightData *lightData)
  178. ;
  179.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  180.         IMPORT_CFM_FUNCTION Q3AmbientLight_SetData
  181.     ENDIF
  182.  
  183.  
  184. ; ******************************************************************************
  185. ; **                                                                             **
  186. ; **                        Directional Light                                     **
  187. ; **                                                                             **
  188. ; ****************************************************************************
  189.  
  190. ;
  191. ; extern TQ3LightObject Q3DirectionalLight_New(const TQ3DirectionalLightData *directionalLightData)
  192. ;
  193.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  194.         IMPORT_CFM_FUNCTION Q3DirectionalLight_New
  195.     ENDIF
  196.  
  197. ;
  198. ; extern TQ3Status Q3DirectionalLight_GetCastShadowsState(TQ3LightObject light, TQ3Boolean *castsShadows)
  199. ;
  200.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  201.         IMPORT_CFM_FUNCTION Q3DirectionalLight_GetCastShadowsState
  202.     ENDIF
  203.  
  204. ;
  205. ; extern TQ3Status Q3DirectionalLight_GetDirection(TQ3LightObject light, TQ3Vector3D *direction)
  206. ;
  207.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  208.         IMPORT_CFM_FUNCTION Q3DirectionalLight_GetDirection
  209.     ENDIF
  210.  
  211. ;
  212. ; extern TQ3Status Q3DirectionalLight_SetCastShadowsState(TQ3LightObject light, TQ3Boolean castsShadows)
  213. ;
  214.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  215.         IMPORT_CFM_FUNCTION Q3DirectionalLight_SetCastShadowsState
  216.     ENDIF
  217.  
  218. ;
  219. ; extern TQ3Status Q3DirectionalLight_SetDirection(TQ3LightObject light, const TQ3Vector3D *direction)
  220. ;
  221.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  222.         IMPORT_CFM_FUNCTION Q3DirectionalLight_SetDirection
  223.     ENDIF
  224.  
  225. ;
  226. ; extern TQ3Status Q3DirectionalLight_GetData(TQ3LightObject light, TQ3DirectionalLightData *directionalLightData)
  227. ;
  228.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  229.         IMPORT_CFM_FUNCTION Q3DirectionalLight_GetData
  230.     ENDIF
  231.  
  232. ;
  233. ; extern TQ3Status Q3DirectionalLight_SetData(TQ3LightObject light, const TQ3DirectionalLightData *directionalLightData)
  234. ;
  235.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  236.         IMPORT_CFM_FUNCTION Q3DirectionalLight_SetData
  237.     ENDIF
  238.  
  239.  
  240. ; ******************************************************************************
  241. ; **                                                                             **
  242. ; **                        Point Light                                              **
  243. ; **                                                                             **
  244. ; ****************************************************************************
  245.  
  246. ;
  247. ; extern TQ3LightObject Q3PointLight_New(const TQ3PointLightData *pointLightData)
  248. ;
  249.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  250.         IMPORT_CFM_FUNCTION Q3PointLight_New
  251.     ENDIF
  252.  
  253. ;
  254. ; extern TQ3Status Q3PointLight_GetCastShadowsState(TQ3LightObject light, TQ3Boolean *castsShadows)
  255. ;
  256.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  257.         IMPORT_CFM_FUNCTION Q3PointLight_GetCastShadowsState
  258.     ENDIF
  259.  
  260. ;
  261. ; extern TQ3Status Q3PointLight_GetAttenuation(TQ3LightObject light, TQ3AttenuationType *attenuation)
  262. ;
  263.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  264.         IMPORT_CFM_FUNCTION Q3PointLight_GetAttenuation
  265.     ENDIF
  266.  
  267. ;
  268. ; extern TQ3Status Q3PointLight_GetLocation(TQ3LightObject light, TQ3Point3D *location)
  269. ;
  270.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  271.         IMPORT_CFM_FUNCTION Q3PointLight_GetLocation
  272.     ENDIF
  273.  
  274. ;
  275. ; extern TQ3Status Q3PointLight_GetData(TQ3LightObject light, TQ3PointLightData *pointLightData)
  276. ;
  277.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  278.         IMPORT_CFM_FUNCTION Q3PointLight_GetData
  279.     ENDIF
  280.  
  281. ;
  282. ; extern TQ3Status Q3PointLight_SetCastShadowsState(TQ3LightObject light, TQ3Boolean castsShadows)
  283. ;
  284.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  285.         IMPORT_CFM_FUNCTION Q3PointLight_SetCastShadowsState
  286.     ENDIF
  287.  
  288. ;
  289. ; extern TQ3Status Q3PointLight_SetAttenuation(TQ3LightObject light, TQ3AttenuationType attenuation)
  290. ;
  291.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  292.         IMPORT_CFM_FUNCTION Q3PointLight_SetAttenuation
  293.     ENDIF
  294.  
  295. ;
  296. ; extern TQ3Status Q3PointLight_SetLocation(TQ3LightObject light, const TQ3Point3D *location)
  297. ;
  298.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  299.         IMPORT_CFM_FUNCTION Q3PointLight_SetLocation
  300.     ENDIF
  301.  
  302. ;
  303. ; extern TQ3Status Q3PointLight_SetData(TQ3LightObject light, const TQ3PointLightData *pointLightData)
  304. ;
  305.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  306.         IMPORT_CFM_FUNCTION Q3PointLight_SetData
  307.     ENDIF
  308.  
  309.  
  310. ; ******************************************************************************
  311. ; **                                                                             **
  312. ; **                        Spot Light                                              **
  313. ; **                                                                             **
  314. ; ****************************************************************************
  315.  
  316. ;
  317. ; extern TQ3LightObject Q3SpotLight_New(const TQ3SpotLightData *spotLightData)
  318. ;
  319.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  320.         IMPORT_CFM_FUNCTION Q3SpotLight_New
  321.     ENDIF
  322.  
  323. ;
  324. ; extern TQ3Status Q3SpotLight_GetCastShadowsState(TQ3LightObject light, TQ3Boolean *castsShadows)
  325. ;
  326.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  327.         IMPORT_CFM_FUNCTION Q3SpotLight_GetCastShadowsState
  328.     ENDIF
  329.  
  330. ;
  331. ; extern TQ3Status Q3SpotLight_GetAttenuation(TQ3LightObject light, TQ3AttenuationType *attenuation)
  332. ;
  333.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  334.         IMPORT_CFM_FUNCTION Q3SpotLight_GetAttenuation
  335.     ENDIF
  336.  
  337. ;
  338. ; extern TQ3Status Q3SpotLight_GetLocation(TQ3LightObject light, TQ3Point3D *location)
  339. ;
  340.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  341.         IMPORT_CFM_FUNCTION Q3SpotLight_GetLocation
  342.     ENDIF
  343.  
  344. ;
  345. ; extern TQ3Status Q3SpotLight_GetDirection(TQ3LightObject light, TQ3Vector3D *direction)
  346. ;
  347.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  348.         IMPORT_CFM_FUNCTION Q3SpotLight_GetDirection
  349.     ENDIF
  350.  
  351. ;
  352. ; extern TQ3Status Q3SpotLight_GetHotAngle(TQ3LightObject light, float *hotAngle)
  353. ;
  354.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  355.         IMPORT_CFM_FUNCTION Q3SpotLight_GetHotAngle
  356.     ENDIF
  357.  
  358. ;
  359. ; extern TQ3Status Q3SpotLight_GetOuterAngle(TQ3LightObject light, float *outerAngle)
  360. ;
  361.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  362.         IMPORT_CFM_FUNCTION Q3SpotLight_GetOuterAngle
  363.     ENDIF
  364.  
  365. ;
  366. ; extern TQ3Status Q3SpotLight_GetFallOff(TQ3LightObject light, TQ3FallOffType *fallOff)
  367. ;
  368.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  369.         IMPORT_CFM_FUNCTION Q3SpotLight_GetFallOff
  370.     ENDIF
  371.  
  372. ;
  373. ; extern TQ3Status Q3SpotLight_GetData(TQ3LightObject light, TQ3SpotLightData *spotLightData)
  374. ;
  375.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  376.         IMPORT_CFM_FUNCTION Q3SpotLight_GetData
  377.     ENDIF
  378.  
  379. ;
  380. ; extern TQ3Status Q3SpotLight_SetCastShadowsState(TQ3LightObject light, TQ3Boolean castsShadows)
  381. ;
  382.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  383.         IMPORT_CFM_FUNCTION Q3SpotLight_SetCastShadowsState
  384.     ENDIF
  385.  
  386. ;
  387. ; extern TQ3Status Q3SpotLight_SetAttenuation(TQ3LightObject light, TQ3AttenuationType attenuation)
  388. ;
  389.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  390.         IMPORT_CFM_FUNCTION Q3SpotLight_SetAttenuation
  391.     ENDIF
  392.  
  393. ;
  394. ; extern TQ3Status Q3SpotLight_SetLocation(TQ3LightObject light, const TQ3Point3D *location)
  395. ;
  396.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  397.         IMPORT_CFM_FUNCTION Q3SpotLight_SetLocation
  398.     ENDIF
  399.  
  400. ;
  401. ; extern TQ3Status Q3SpotLight_SetDirection(TQ3LightObject light, const TQ3Vector3D *direction)
  402. ;
  403.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  404.         IMPORT_CFM_FUNCTION Q3SpotLight_SetDirection
  405.     ENDIF
  406.  
  407. ;
  408. ; extern TQ3Status Q3SpotLight_SetHotAngle(TQ3LightObject light, float hotAngle)
  409. ;
  410.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  411.         IMPORT_CFM_FUNCTION Q3SpotLight_SetHotAngle
  412.     ENDIF
  413.  
  414. ;
  415. ; extern TQ3Status Q3SpotLight_SetOuterAngle(TQ3LightObject light, float outerAngle)
  416. ;
  417.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  418.         IMPORT_CFM_FUNCTION Q3SpotLight_SetOuterAngle
  419.     ENDIF
  420.  
  421. ;
  422. ; extern TQ3Status Q3SpotLight_SetFallOff(TQ3LightObject light, TQ3FallOffType fallOff)
  423. ;
  424.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  425.         IMPORT_CFM_FUNCTION Q3SpotLight_SetFallOff
  426.     ENDIF
  427.  
  428. ;
  429. ; extern TQ3Status Q3SpotLight_SetData(TQ3LightObject light, const TQ3SpotLightData *spotLightData)
  430. ;
  431.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  432.         IMPORT_CFM_FUNCTION Q3SpotLight_SetData
  433.     ENDIF
  434.  
  435.  
  436.  
  437.  
  438.     ENDIF ; __QD3DLIGHT__ 
  439.  
  440.